CKM_SEED_CBC
This section provides a summary of CKM_SEED_CBC.
Supported operations
Operation | Supported |
---|---|
Encrypt and Decrypt | Yes |
Sign and Verify | No |
SignRecover and VerifyRecover | No |
Digest | No |
Generate Key/Key-Pair | No |
Wrap and Unwrap | Yes |
Derive | No |
FIPS Mode support
Available in FIPS Mode | Restrictions in FIPS Mode |
---|---|
No | Not applicable |
Key size range (bytes) and parameters
Key size minimum/maximum | Value |
---|---|
Minimum | 16 |
Maximum | 16 |
Parameter
16 bytes
Mechanism description
SEED-CBC, denoted CKM_SEED_CBC
, is a mechanism for single and multiple part encryption and decryption, key wrapping and key unwrapping, based on the KISA (Korean Information Security Agency) SEED specification and cipher-block chaining mode.
It has a single parameter; a 16-byte initialization vector.
This mechanism can wrap and unwrap any secret key. Of course, a particular token may not be able to wrap/unwrap every secret key that it supports. For wrapping, the mechanism encrypts the value of the CKA_VALUE
attribute of the key that is wrapped, padded on the trailing end with up to block size minus one null bytes so that the resulting length is a multiple of the block size. The output data is the same length as the padded input data. It does not wrap the key type, key length, or any other information about the key; the application must convey these separately.
For unwrapping, the mechanism decrypts the wrapped key, and truncates the result according to the CKA_KEY_TYPE
attribute of the template and, if it has one and the key type supports it, the CKA_VALUE_LEN
attribute of the template. The mechanism contributes the result as the CKA_VALUE
attribute of the new key. Other attributes required by the key type must be specified in the template.
Constraints on key types and the length of data are summarized in the following table.
SEED-CBC: Key and Data Length
Function | Key type | Input length | Output length | Comments |
---|---|---|---|---|
C_Encrypt | CKK_SEED | Multiple of block size | Same as input length | No final part |
C_Decrypt | CKK_SEED | Multiple of block size | Same as input length | No final part |
C_WrapKey | CKK_SEED | Any | Input length rounded up to multiple of the block size | |
C_UnwrapKey | CKK_SEED | Multiple of block size | Determined by type of key being unwrapped or CKA_VALUE_LEN |
Return to ProtectToolkit-C mechanisms.